Devices, softwares and methods for selectively limiting the duration of an individual modem-on-hold session

ABSTRACT

Devices, softwares and methods selectively limit a duration of an individual modem-on hold session. A network device receives and holds data for an individualized on-hold timeout time limit for each user, such as an ISP subscriber.

CROSS REFERENCE TO RELATED APPLICATIONS

This application may be found to be related with another U.S. patentapplication Ser. No. 09/966,927 that is filed on the same day, hastitle: “Devices, softwares and methods for selectively limiting thetotal modem-on-hold timeout time of a single log-in session”, and whichis hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is related to the field of modems and networkservers, and more specifically to modems and servers that can request aModem-On-Hold session and can discontinue such a session under certainconditions.

2. Description of the Related Art

Networks, such as the internet, are increasingly used forcommunications. Typically a user subscribes with an Internet ServiceProvider (“ISP”) that is connected to the Internet. The user has a hostdevice, such as a personal computer. The host device can communicateover a telephone line with a network device of the ISP, such as aserver. Then the user and the ISP exchange data over the modemconnection, typically in binary form.

The host device includes a modem, which communicates over the telephoneline. The server has individual ports, one for each user that calls inwith a modem to log in.

Recently modems that are made according to the InternationalTelecommunications Union (ITU) V.92 standard provide a new feature,which is called the Modem-On-Hold (“MOH”). The modem sends a MOH requestto temporarily discontinue (“place on hold”) the modem connection. Theserver receives the MOH request, and grants it by temporarilydiscontinuing the modem connection.

The MOH feature is useful to the user, because the telephone line istemporarily released. Then it can be used to receive an incoming call,or to place an outgoing call.

The MOH feature, however, is detrimental to the internet serviceprovider. While the modem connection is temporarily discontinued, theport assigned to it by the server remains committed to the user, butunused. As such, it may not be assigned to another user. A number ofusers could abuse the privilege, employing the MOH feature for a longtime.

BRIEF SUMMARY OF THE INVENTION

The present invention overcomes these problems and limitations of theprior art.

Generally, the present invention provides devices, softwares and methodsfor selectively limiting a duration of an individual modem-on holdsession. A network device receives and holds data for an individualizedon-hold timeout time limit for each user, such as an ISP subscriber.

The invention offers the advantage that ISPs may negotiate a higherprice for services, for permitting a longer individualized on-holdtimeout time limit. Plus, every user will pay for the level of servicethey need.

The invention will become more readily apparent from the followingDetailed Description, which proceeds with reference to the drawings, inwhich:

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing two host devices made according toembodiments of the invention communicating with a network device madeaccording to an embodiment of the invention.

FIG. 2 is a diagram of a memory arrangement in the network device ofFIG. 1.

FIG. 3 is a flowchart illustrating a method according to an embodimentof the present invention.

FIG. 4 is a flowchart illustrating a method according to anotherembodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

As has been mentioned, the present invention provides devices, softwaresand methods for limiting a duration of an individual modem-on holdsession. The invention is now described in more detail.

Referring now to FIG. 1, an arrangement is shown of two host devicesHD1, HD2 communicating with a network switch ND, all of which are madeaccording to the present invention. It will be understood that FIG. 1shows only one of many possible arrangements. For example, host deviceHD1 may also communicate with a server that is not made according to theinvention. Moreover, network switch ND may be accessed by a personalcomputer that is not made according to the invention.

Host devices HD1, HD2 may be personal computers. Device HD1 includes aCentral Processing Unit (“CPU”) CP1, and a memory MEM1. CPU CP1 executesa program PM1 that resides on memory MEM1. Similarly, device HD2includes a Central Processing Unit (“CPU”) CP2, and a memory MEM2. CPUCP2 executes a program PM2 that resides on memory MEM2.

Importantly, host devices HD1, HD2 include modems MD1, MD2 respectively.Modem MD1 is connected via a telephone line TL1 to the telephone networkTC. Modem MD2 is connected via a telephone line TL2 to the telephonenetwork TC (also known as the telephone cloud).

Network switch ND may be any network switch, such as a server, a router,a gateway, a bridge, etc. Switch ND has at least two ports P3A, P3B forinterfacing with the telephone network TC. These may be directly coupledwith other internal modems (not shown) of switch ND, etc., as is knownin the art.

Switch ND also has a processor CP3. Processor CP3 may be implemented asa Digital Signal Processor (DSP), Central Processing Unit (CPU), or anyother equivalent way known in the art.

Switch ND additionally includes a memory MEM3, on which a program PM3may reside. Functions of processor CP3 may be controlled by program PM3,as will become apparent from the below. In addition, memory MEM3includes a user database DB3, which may include user attributes.

Host device HD1 is able to establish a first modem connection MC1 withnetwork switch ND. First modem connection MC1 is from modem MD1 of hostdevice HD1, over telephone line TL1. Similarly, host device HD2 is ableto establish a second modem connection MC2 with network switch ND.Second modem connection MC2 is from modem MD2 of host device HD2, overtelephone line TL2.

Host devices HD1, HD2 are thus able to exchange data with network switchND. They are able to encode in such data a preference or choice as tothe length of a respective individualized hold timeout time limit. Theytransmit the data to network switch ND, which stores it in memory MEM3.

Referring now to FIG. 2, user database DB3 is described in more detail.Different users are assigned different modem-on-hold timeout timelimits. This part of the invention may be accomplished by making thehold timeout time limits part of the user profile, and relying on thefact that the users have different profiles to begin with. It will beunderstood that, if network switch ND is implemented by more than onedevice, portions of user database DB3 may be distributed among suchdevices.

Returning to FIG. 1, host devices HD1, HD2 are able to receive linerequests. The line requests may be directly from the users, or may beautomated, e.g. when a call is incoming over telephone lines TL1, TL2respectively. Line requests are for different uses of telephone linesTL1, TL2. More particularly, a line request may be for temporarilyreleasing telephone line TL1, by temporarily placing modem connectionMC1 on hold. Pursuant to such a line request, host device HD1 firstgenerates a Modem-On-Hold (MOH) request. The MOH request is transmittedvia modem connection MC1 to network switch ND.

Network switch ND is capable of receiving the MOH request. When the MOHrequest is received it is granted, which starts an individualModem-On-Hold (MOH) session. This way the line request may beaccommodated.

Network switch ND also has a timer (not shown separately) for measuringa duration of the individual MOH session. The timer is started when theMOH request is granted.

In addition, network switch ND prevents the individual MOH session fromlasting longer than the corresponding associated individualized holdtimeout time limit. When the time limit expires, the modem connection isdisconnected. Moreover, if the individualized hold timeout time limit ispreset to zero, then all MOH requests will be denied, including thefirst.

The present invention may be implemented by one or more devices thatinclude logic circuitry. The device performs functions and/or methods asare described in this document. The logic circuitry may include aprocessor that may be programmable for a general purpose, or dedicated,such as microcontroller, a microprocessor, a Digital Signal Processor(DSP), etc. For example, the device may be a digital computer likedevice, such as a general-purpose computer selectively activated orreconfigured by a computer program stored in the computer.

Moreover, the invention additionally provides methods, which aredescribed below. The methods and algorithms presented herein are notnecessarily inherently associated with any particular computer or otherapparatus. Rather, various general-purpose machines may be used withprograms in accordance with the teachings herein, or it may prove moreconvenient to construct more specialized apparatus to perform therequired method steps. The required structure for a variety of thesemachines will become apparent from this description.

In all cases, there should be borne in mind the distinction between themethod of the invention itself, and the method of operating a computingmachine. The present invention relates both to methods in general, andalso to steps for operating a computer and for processing electrical orother physical signals to generate other desired physical signals.

The invention additionally provides programs, and methods of operationof the programs. A program is generally defined as a group of stepsleading to a desired result, due to their nature and their sequence. Aprogram made according to an embodiment of the invention is mostadvantageously implemented as a program for a computing machine, such asa general-purpose computer, a special purpose computer, amicroprocessor, etc.

The invention also provides storage media that, individually or incombination with others, have stored thereon instructions of a programmade according to the invention. A storage medium according to theinvention is a computer-readable medium, such as a memory, and is readby the computing machine mentioned above.

The steps or instructions of a program made according to an embodimentof the invention requires physical manipulations of physical quantities.Usually, though not necessarily, these quantities may be transferred,combined, compared, and otherwise manipulated or processed according tothe instructions, and they may also be stored in a computer-readablemedium. These quantities include, for example electrical, magnetic, andelectromagnetic signals, and also states of matter that can be queriedby such signals. It is convenient at times, principally for reasons ofcommon usage, to refer to these quantities as bits, data bits, samples,values, symbols, characters, images, terms, numbers, or the like. Itshould be borne in mind, however, that all of these and similar termsare associated with the appropriate physical quantities, and that theseterms are merely convenient labels applied to these physical quantities,individually or in groups.

This detailed description is presented largely in terms of flowcharts,display images, algorithms, and symbolic representations of operationsof data bits within at least one computer readable medium, such as amemory. An economy is achieved in the present document in that a singleset of flowcharts is used to describe both methods of the invention, andprograms according to the invention. Indeed, such descriptions andrepresentations are the type of convenient labels used by those skilledin programming and/or the data processing arts to effectively convey thesubstance of their work to others skilled in the art. A person skilledin the art of programming may use these descriptions to readily generatespecific instructions for implementing a program according to thepresent invention.

Often, for the sake of convenience only, it is preferred to implementand describe a program as various interconnected distinct softwaremodules or features, individually and collectively also known assoftware and softwares. This is not necessary, however, and there may becases where modules are equivalently aggregated into a single programwith unclear boundaries. In any event, the software modules or featuresof the present invention may be implemented by themselves, or incombination with others. Even though it is said that the program may bestored in a computer-readable medium, it should be clear to a personskilled in the art that it need not be a single memory, or even a singlemachine. Various portions, modules or features of it may reside inseparate memories, or even separate machines. The separate machines maybe connected directly, or through a network, such as a local accessnetwork (LAN), or a global network, such as the Internet.

In the present case, methods of the invention are implemented by machineoperations. In other words, embodiments of programs of the invention aremade such that they perform methods of the invention that are describedin this document. These may be optionally performed in conjunction withone or more human operators performing some, but not all of them. As perthe above, the users need not be collocated with each other, but eachonly with a machine that houses a portion of the program. Alternately,some of these machines may operate automatically, without users and/orindependently from each other.

Methods of the invention are now described.

Referring now to FIG. 3, a flowchart 300 is used to illustrate a methodaccording to an embodiment of the invention. The method of flowchart 300may also be practiced by network switch ND of FIG. 1. Alternately, itmay be practiced by a combination of cooperating network switches.

According to a box 310, a first modem connection is established with afirst modem.

According to a next box 320, a second modem connection is establishedwith a second modem.

According to a next box 330, data is exchanged over the first and secondmodem connections. The data exchange may be concurrent, although that isnot necessary for practicing the invention.

The data exchange may serve to identify the users of the first andsecond modems. Identification may take place by using an Authentication,Authorization, and Accounting (AAA) server, although the invention isnot limited in this regard. Such an AAA server usually performs theseAAA functions by interacting with network access or gateway devices anddatabases and directories containing user information. The interactionmay be by according to a suitable standard. An example of such astandard today is the RADIUS (Remote Authentication Dial In UserService) standard.

According to a next box 340, a first hold timeout time limit isdetermined. That may be from information of the user, such as the userprofile. This may be implemented by a special protocol to determine thestatus of the current user through authentication and authorizationprocesses.

Alternately, the first hold timeout time limit may be determined bydecoding the exchanged data. According to a next box 344, the firstmodem connection is placed on hold. This starts a first hold session.According to a next box 347, the first hold session is prevented fromexceeding the first hold timeout time limit, as determined in box 340.Prevention may be performed by disconnecting the modem connection, or byinvading in the telephone line to reestablish it. The user may have atimer, which warns when the time comes.

In the event the method of the invention is being performed bycooperating network switches, the controlling server may send to theaccess server a Modem-On Hold attribute. Then this data will be sent toa Registration, Admission, and Status (RAS) protocol platform of theaccess server.

According to a next box 350, a second hold timeout time limit isdetermined. That may be from information of the user, such as the userprofile. Alternately, it may be determined by decoding the exchangeddata. According to a next box 354, the second modem connection is placedon hold. This starts a second hold session. According to a next box 357,the second hold session is prevented from exceeding the second holdtimeout time limit, as determined in box 350.

Accordingly, the hold timeout time limit is configurable on a per userbasis. This may be by a special protocol, which can use a vendorspecific attribute (VSA) capability to configure the modem-on holdmaximum duration for dial-in users, such as dial-in subscribers. A newattribute will be added to the protocol as per the invention, whosevalue will indicate the maximum on-hold time the user is allowed to beon. Once a server implementing the protocol has determined authorizationfor a specific user (through user identification and password), theserver may then send a response to the access server, which will takethe respective action.

If the data received from the radius server contains a modem on holdattribute, this data will be sent from the host operating system to aremote access server (“RAS”) platform. The RAS platform has features(e.g. appropriate DSP) that may use the MOH configuration to negotiatewith the client modem the maximum allowed on-hold time the user isgranted.

If the host operating system does not send a command to configure themodem on hold parameters, the RAS platform's features may instead use adefault value, specified through an appropriate tool, such as modemcaps.

Modemcaps is an informal name for a database that contains elements of amodem capability. The database is used to configure the modem, usuallywhen it becomes idle.

Referring now to FIG. 4, a flowchart 400 is used to illustrate a methodaccording to another embodiment of the invention. The method offlowchart 400 may also be practiced by either one or both of hostdevices HD1, HD2 of FIG. 1.

According to a box 410, a modem connection is established with a networkdevice.

According to a next box 420, user setup data is exchanged over the firstmodem connection, to establish an individualized hold timeout timelimit. The time limit may be within a range, such as 10 sec to 16minutes. Values outside the range can mean different conditions. Forexample, a value of zero may mean that none is allowed. A value over 16minutes may mean that it is unlimited. The network device negotiateswith the client modem at the physical layer a value for the duration ofa MOH session.

According to a next box 430, the established modem connection is placedon hold. This is accomplished by issuing a request. It is known,however, that a subsequent request for a modem on hold session will begranted only up to the individualized hold timeout time limit. After thetime limit, the established modem connection will be discontinued.

Alternately, execution may proceed from box 420 first to box 440, wherethe modem connection is discontinued. That would be if the previouslog-in session were a set up session.

According to a next box 450, a new modem connection is established withthe network device. That would be during a subsequent log-in session.The log-in user is again identified, and the individual attributesretrieved as per the above. Execution would then continue with box 430,as per the above.

A person skilled in the art will be able to practice the presentinvention in view of the description present in this document, which isto be taken as a whole. Numerous details have been set forth in order toprovide a more thorough understanding of the invention. In otherinstances, well-known features have not been described in detail inorder not to obscure unnecessarily the invention.

While the invention has been disclosed in its preferred form, thespecific embodiments as disclosed and illustrated herein are not to beconsidered in a limiting sense. Indeed, it should be readily apparent tothose skilled in the art in view of the present description that theinvention may be modified in numerous ways. The inventor regards thesubject matter of the invention to include all combinations andsubcombinations of the various elements, features, functions and/orproperties disclosed herein.

The following claims define certain combinations and subcombinations,which are regarded as novel and non-obvious. Additional claims for othercombinations and subcombinations of features, functions, elements and/orproperties may be presented in this or a related document.

The invention claimed is:
 1. A device comprising: a telephone port forcoupling to a telephone network; and a processor coupled with thetelephone port, wherein the processor is adapted to establish a firstmodem connection with a first modem over a first telephone line;establish a second modem connection with a second modem over a secondtelephone line; exchange data over the first and second modemconnections concurrently; place the first modem connection on hold fromthe exchanging of data to start a first hold session; place the secondmodem connection on hold from the exchanging of data to start a secondhold session; prevent the first hold session from exceeding a first holdtimeout time limit without the first modem connection beingdiscontinued; and prevent the second hold session from exceeding asecond hold timeout time limit without the second modem connection beingdiscontinued, wherein the second hold timeout time limit is differentfrom the first hold timeout time limit.
 2. The device of claim 1,wherein the processor is further adapted to: determine the first holdtimeout time limit.
 3. The device of claim 2, wherein the processor isfurther adapted to: receive information to identify a first userassociated with the first modem connection; and look up data about theidentified first user to determine the first hold timeout time limit. 4.The device of claim 2, wherein the processor is further adapted to:decode the exchanged data to determine the first hold timeout timelimit.
 5. A device comprising: a modem for coupling to a telephonenetwork; and a processor coupled with the modem, wherein the processoris adapted to establish a modem connection with a network device over atelephone line; and exchange user setup data over the modem connection,to establish an individualized hold timeout time limit, wherein asubsequent request for a modem on hold session will be granted only upto the individualized hold timeout time limit without the establishedmodem connection being discontinued.
 6. The device of claim 5, whereinthe processor is further adapted to: discontinue the established modemconnection; and then establish another modem connection with the networkdevice over the telephone line.
 7. A device comprising: means forestablishing a first modem connection with a first modem over a firsttelephone line; means for establishing a second modem connection with asecond modem over a second telephone line; means for exchanging dataover the first and second modem connections concurrently; means forplacing the first modem connection on hold from the exchanging of datato start a first hold session; means for placing the second modemconnection on hold from the exchanging of data to start a second holdsession; means for preventing the first hold session from exceeding afirst hold timeout time limit without the first modem connection beingdiscontinued; and means for preventing the second hold session fromexceeding a second hold timeout time limit without the second modemconnection being discontinued, wherein the second hold timeout timelimit is different from the first hold timeout time limit.
 8. The deviceof claim 7, further comprising: means for determining the first holdtimeout time limit.
 9. The device of claim 8, further comprising: meansfor receiving information to identify a first user associated with thefirst modem connection; and means for looking up data about theidentified first user to determine the first hold timeout time limit.10. The device of claim 8, further comprising: means for decoding theexchanged data to determine the first hold timeout time limit.
 11. Adevice comprising: means for establishing a modem connection with anetwork device over a telephone line; and means for exchanging usersetup data over the modem connection, to establish an individualizedhold timeout time limit, wherein a subsequent request for a modem onhold session will be granted only up to the individualized hold timeouttime limit without the established modem connection being discontinued.12. The device of claim 11, further comprising: means for discontinuingthe established modem connection; and means for then establishinganother modem connection with the network device over the telephoneline.
 13. An article comprising: a storage medium, the storage mediumhaving instructions stored thereon, wherein when the instructions areexecuted by at least one device, they result in: establishing a firstmodem connection with a first modem over a first telephone line;establishing a second modem connection with a second modem over a secondtelephone line; exchanging data over the first and second modemconnections concurrently; placing the first modem connection on holdfrom the exchanging of data to start a first hold session; placing thesecond modem connection on hold from the exchanging of data to start asecond hold session; preventing the first hold session from exceeding afirst hold timeout time limit without the first modem connection beingdiscontinued; and preventing the second hold session from exceeding asecond hold timeout time limit without the second modem connection beingdiscontinued, wherein the second hold timeout time limit is differentfrom the first hold timeout time limit.
 14. The article of claim 13,wherein the instructions further result in: determining the first holdtimeout time limit.
 15. The article of claim 14, wherein theinstructions further result in: receiving information to identify afirst user associated with the first modem connection; and looking updata about the identified first user to determine the first hold timeouttime limit.
 16. The article of claim 14, wherein the instructionsfurther result in: decoding the exchanged data to determine the firsthold timeout time limit.
 17. An article comprising: a storage medium,the storage medium having instructions stored thereon, wherein when theinstructions are executed by at least one device, they result in:establishing a modem connection with a network device over a telephoneline; and exchanging user setup data over the modem connection, toestablish an individualized hold timeout time limit, wherein asubsequent request for a modem on hold session will be granted only upto the individualized hold timeout time limit without the establishedmodem connection being discontinued.
 18. The article of claim 17,wherein the instructions further result in: discontinuing theestablished modem connection; and then establishing another modemconnection with the network device over the telephone line.
 19. A methodcomprising: establishing a first modem connection with a first modemover a first telephone line; establishing a second modem connection witha second modem over a second telephone line; exchanging data over thefirst and second modem connections concurrently; placing the first modemconnection on hold from the exchanging of data to start a first holdsession; placing the second modem connection on hold from the exchangingof data to start a second hold session; preventing the first holdsession from exceeding a first hold timeout time limit without the firstmodem connection being discontinued; and preventing the second holdsession from exceeding a second hold timeout time limit without thesecond modem connection being discontinued, wherein the second holdtimeout time limit is different from the first hold timeout time limit.20. The method of claim 19, further comprising: determining the firsthold timeout time limit.
 21. The method of claim 20, further comprising:receiving information to identify a first user associated with the firstmodem connection; and looking up data about the identified first user todetermine the first hold timeout time limit.
 22. The method of claim 20,further comprising: decoding the exchanged data to determine the firsthold timeout time limit.
 23. A method comprising: establishing a modemconnection with a network device over a telephone line; and exchanginguser setup data over the modem connection, to establish anindividualized hold timeout time limit, wherein a subsequent request fora modem on hold session will be granted only up to the individualizedhold timeout time limit without the established modem connection beingdiscontinued.
 24. The method of claim 23, further comprising:discontinuing the established modem connection; and then establishinganother modem connection with the network device over the telephoneline.